package cn.iocoder.yudao.module.system.controller.admin.areaserve.vo;

import cn.iocoder.yudao.framework.common.pojo.PageParam;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.Date;

@Schema(description = "管理后台 - 员工主数据")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MdmEmployeePageReqVO extends PageParam {
    /**
     * 主键ID
     */
    @Schema(description = "主键ID")
    private Long id;

    /**
     * 员工编码
     */
    @Schema(description = "员工编码")
    private String employeeCode;

    /**
     * 员工姓名
     */
    @Schema(description = "员工姓名")
    private String employeeName;

    /**
     * 员工英文名
     */
    @Schema(description = "员工英文名")
    private String employeeNameOt;

    /**
     * Workday ID
     */
    @Schema(description = "Workday ID")
    private String workdayId;

    /**
     * 邮箱
     */
    @Schema(description = "邮箱")
    private String email;

    /**
     * 所属公司编码
     */
    @Schema(description = "所属公司编码")
    private String companyCode;

    /**
     * 所属公司名称
     */
    @Schema(description = "所属公司名称")
    private String companyName;

    /**
     * 所属公司英文名称
     */
    @Schema(description = "所属公司英文名称")
    private String companyNameOt;

    /**
     * 部门编码
     */
    @Schema(description = "部门编码")
    private String deptCode;

    /**
     * 部门名称
     */
    @Schema(description = "部门名称")
    private String deptName;

    /**
     * 部门英文名
     */
    @Schema(description = "部门英文名")
    private String deptNameOt;

    /**
     * 员工类型
     * 1    正式员工  2    派遣人员  4    其他人员  5    退休/协保人员  6    实习生  7    第三方员工  8    专家  9    非全日制人员  10    外包服务  11    多点执业医师  12    正式员工
     */
    @Schema(description = "员工类型")
    private Integer employeeType;

    /**
     * 员工状态；1. 在职 2，离职
     */
    @Schema(description = "员工状态")
    private Integer empStatus;

    /**
     * 入职日期
     */
    @Schema(description = "入职日期")
    private Date contractBeginDate;

    /**
     * 离职日期
     */
    @Schema(description = "离职日期")
    private Date dimissionDate;

    /**
     * 当前职位开始时间
     */
    @Schema(description = "当前职位开始时间")
    private Date currentPosDate;
}
